A theory of human vision centered on the concept of a center/surround Retinex (retina and cortex) was introduced by Edwin Land in “An Alternative Technique for the Computation of the Designator in the Retinex Theory of Color Vision,” Proceedings of the National Academy of Science, Volume 83, pp. 3078-3080, 1986. Land drew upon his earlier Retinex concepts disclosed in “Color Vision and The Natural Image,” Proceedings of the National Academy of Science, Volume 45, pp. 115-129, 1959, but harmonized these with certain findings of the neurophysiology of vision. All of the Retinex concepts were intended to be models for human color perception.
The application of Land's human vision theories to image processing has been attempted in the prior art. For example, to mimic the dynamic range compression of human vision, a detector array with integrated processing in analog VLSI silicon chips used a logarithm transformation prior to the surround formation. See “Analog VLSI and Neural Systems,” C. Mead, Addison-Wesley, Reading, Mass., 1989. In an attempt to improve color constancy, the implementation of a color Retinex in analog VLSI technology is suggested by Moore et al., in “A Real-time Neural System for Color Constancy,” IEEE Transactions on Neural Networks, Volume 2, pp. 237-247, March 1991. In Moore et al., the surround function was an exponential and final processing before display of the image required the use of a variable gain adjustment that set itself by finding the absolute maximum and minimum across all three color bands' signal values.
Central to these and other prior art Retinex methods is a Retinex-type algorithm. A perceived image S is a multiplication between the illumination L shed on visible surfaces and the respective reflectance R of the surfaces. ThusS=R·L.  (1)
An underlying assumption behind Retinex algorithms is that the illumination L is an artifact. The illumination L is estimated and either removed completely: S1=S/L=R; or partially: S2=S/ƒ(L), where (ƒ)L is a function of the illumination. Estimating L from S is the main algorithmic and computational problem in Retinex algorithms.
Prior art Retinex-type algorithms are characterized by a two-module structure as shown in FIG. 1. A local statistics module 10 computes a smooth version L (i.e., the local statistics) of an input image S. Usually the smooth version L is a either a linear or a non-linear low-pass filter of the input image S. A manipulation module 20 then manipulates pixels in image S according to correspondingly located values in the local statistics L. In the case of Retinex-type algorithms, the local statistics L is usually attributed to the illumination, and is a local average or local envelope (maximum) of S. Sometimes the local statistics L may be a robust local average or robust local envelope of S, whereby robust means that pixels participating in determining the local average or envelope are on the same side of perceptually significant image edges as the center pixel. In the discussion that follows, L will be referred to as illumination; however L should be understood to encompass its more general meaning.
In FIG. 1, for convenience, the input image S is shown as the input to the Retinex algorithm. However, as is known to those of ordinary skill in the art, Retinex-type algorithms typically operate in the Log domain. As is also know to those of ordinary skill in the art, the illumination L is often referred to as an “envelope.” The envelope can be smooth or piece-wise smooth.
Prior art Retinex algorithms also typically use linear space invariant low pass filters or partial differential equations for the illumination estimation module 10. Variants include slowly varying envelopes, i.e., local envelops instead of local averages, and robust low passes resulting in piece-wise smooth averages or envelopes, which might change abruptly whenever the input changes abruptly.
In the illumination manipulation module 20 module, the illumination L might be subtracted in part, for example, subtract half of the illumination L from the input image S. Alternative manipulation methods may reduce more of the input image S values as corresponding illumination L values increase.
Prior art Retinex algorithms may be applied to monochrome or color images. In the color image case, the Retinex algorithm may be applied to all planes, or only to the illumination L (e.g., the Y) plane.
In some prior art Retinex algorithms both the illumination estimation and illumination manipulation modules 10 and 20 are performed in an iterative filtering and subtraction scheme. In other prior art Retinex algorithms, the modules 10 and 20 are interleaved in a scale-space.
In an improved prior art Retinex-type algorithm, the illumination L is obtained from a sub-sampled version of the input image S. Such an improved Retinex-type algorithm is shown in block diagram form in FIG. 2. In FIG. 2, the Retinex-type algorithm includes linear illumination estimation module 30 and the illumination manipulation module 20. The image signal S is first input to a down sample module 32, where the image signal S is sub-sampled using techniques known to those of ordinary skill in the art to produce sub-sampled images S′. For example, the sub-sampling may involve averaging blocks of four pixels in the image S. The linear illumination estimation module 30 then generates an estimate of the illumination L′ based on the sub-sampled image S′. The illumination L′ is then provided to an up-sample module 34, and an estimation of the illumination L″ of the entire image S is produced, using interpolation and similar techniques known to those of ordinary skill in the art.
Sub-sampling and subsequent interpolation are intended to speed up the computationally intensive Retinex process. However, in the Retinex-type algorithm illustrated in FIG. 2, the interpolation is performed on a set of smooth, low resolution intermediate images (i.e., the images S′), using the high resolution input image S to select corresponding output pixels from the resulting set of high resolution images L″. This interpolation scheme avoids the need to interpolate a low resolution piece-wise smooth illumination image. Thus, the Retinex-type algorithm shown in FIG. 2 can only be used where the algorithm's computationally intensive operation produces a smooth function (either an average or an envelope). An example of such a Retinex-type algorithm is described in F. Durand, and J. Dorsey, “Fast Bilateral Filtering for the Display of High Dynamic Range Images”, preprint in http://graphics.lcs.mit.edu/˜fredo/DurandBilateral.pdf. Thus, the Retinex-type algorithm shown in FIG. 2 cannot be used for robust Retinex-type algorithms, other than for those Retinex-type algorithms employing bilateral filtering. Furthermore, the computationally intensive operation of the Retinex-type algorithm is repeated several times, once for each of the intermediate images S′.